//   Copyright 2009 Pyxis Technologies
//
//   Licensed under the Apache License, Version 2.0 (the "License");
//   you may not use this file except in compliance with the License.
//   You may obtain a copy of the License at
//
//       http://www.apache.org/licenses/LICENSE-2.0
//
//   Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.
//

//using NUnit.Framework;
using System;
using Pyxis.FluentSelenium.Tasks;
using Pyxis.FluentSelenium.Tester;
using Selenium;

namespace Pyxis.FluentSelenium
{
    public class User : ContentTester
    {
        internal const int DefaultTimeout = 8000;

        public User(ISelenium selenium)
            : base(selenium)
        {
        }

        public void Start()
        {
            Selenium.Start();
        }

        public void Stop()
        {
            Selenium.Stop();
        }

        public void Goto(string pageAddress)
        {
            Selenium.Open(pageAddress);
            Selenium.WaitForPageToLoad(DefaultTimeout.ToString());
        }

        public void ShouldBeAt(string pageAddress)
        {
            var acctualAddress = Selenium.GetLocation();
            if (pageAddress != acctualAddress)
                throw ConditionError.NotAtExpectedAddress(pageAddress, acctualAddress);
            //Assert.AreEqual(pageAddress, acctualAddress);
        }

        public void Do(ITask task)
        {
            task.Execute(this);
        }
    }
}
